//package com.autotest.nore.common.utils;
//
//import bsh.EvalError;
//import bsh.Interpreter;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.util.HashSet;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//
//
//public class BeanShellUtils {
//    private static final Logger logger = LoggerFactory.getLogger(BeanShellUtils.class);
//
//    private static final Interpreter interpreter = new Interpreter();
//    private static Map<String, String> globalVariables = new java.util.HashMap<>();
//
//
//    static {
//        // 初始化BeanShell解释器
//        try {
//            interpreter.eval("import java.util.*;");
//            interpreter.eval("import java.io.*;");
//            interpreter.eval("import java.net.*;");
//            interpreter.eval("import java.text.*;");
//            interpreter.eval("import java.math.*;");
//            interpreter.eval("import java.sql.*;");
//            interpreter.eval("import org.apache.jmeter.util.*;");
//            interpreter.eval("import org.apache.jmeter.threads.JMeterVariables;");
//        } catch (EvalError e) {
//            e.printStackTrace();
//        }
//    }
//
//    public static Object eval(String script) throws EvalError {
//        return interpreter.eval(script);
//    }
//
//    public static void setVariable(String name, Object value) throws EvalError {
//        interpreter.set(name, value);
//    }
//
//    public static Object getVariable(String name) throws EvalError {
//        return interpreter.get(name);
//    }
//
//
//    public static Set<String> getVariableNames() {
//        Set<String> variableNames = new HashSet<>();
//        try {
//            // 使用BeanShell脚本获取变量名
//            interpreter.eval("result = this.namespace.getVariableNames();");
//            Object result = interpreter.get("result");
//
//            if (result instanceof List) {
//                ((List<String>) result).forEach(variableNames::add);
//            } else if (result instanceof String[]) {
//                for (String varName : (String[]) result) {
//                    variableNames.add(varName);
//                }
//            } else {
//                throw new RuntimeException("Unexpected result type: " + result.getClass().getName());
//            }
//        } catch (EvalError e) {
//            e.printStackTrace();
//        }
//        // 添加全局变量名
//        variableNames.addAll(globalVariables.keySet());
//        return variableNames;
//    }
//
//    public static void setGlobalVariables(Map<String, String> variables) {
//        globalVariables.putAll(variables);
//    }
//
//    public static Map<String, String> getGlobalVariables() {
//        return globalVariables;
//    }
//
//
//}
